unit untConsultaMovimentacao;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, untConsultaPadrao, dxBarDBNav, dxBar, cxClasses, DB,
  IBCustomDataSet, ActnList, cxPropertiesStore, cxContainer, cxEdit,
  cxStyles, cxGridTableView, cxLookAndFeels, cxGridCustomPopupMenu,
  cxGridPopupMenu, ImgList, cxGraphics, ExtCtrls, cxPC, cxControls,
  cxCustomData, cxFilter, cxData, cxDataStorage, cxDBData,
  cxGridCustomTableView, cxGridDBTableView, cxGridLevel, cxGridCustomView,
  cxGrid, cxCurrencyEdit, IBQuery, cxDropDownEdit, cxCalc, cxSpinEdit,
  cxLabel, cxTextEdit, cxMaskEdit, cxLookupEdit, cxDBLookupEdit,
  cxDBLookupComboBox, dxmdaset, cxDBEdit, ACBrBase, ACBrEnterTab,
  cxIntlBase, cxintl, cxLookAndFeelPainters, dxSkinsCore, dxSkinBlack,
  dxSkinBlue, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide,
  dxSkinFoggy, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian,
  dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins,
  dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
  dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
  dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinPumpkin, dxSkinSeven,
  dxSkinSharp, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
  dxSkinSummer2008, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinXmas2008Blue, dxSkinscxPCPainter, dxSkinsdxBarPainter, ppDB,
  ppParameter, ppCtrls, ppBands, ppClass, ppReport, ppStrtch, ppSubRpt,
  ppPrnabl, ppCache, ppProd, ppEndUsr, ppComm, ppRelatv, ppDBPipe, ppVar,
  ppModule, raCodMod;

type
  TfrmConsultaMovimentacao = class(TfrmConsultaPadrao)
    Panel3: TPanel;
    dtEditMES: TIBStringField;
    dtEditCREDITO: TIBBCDField;
    dtEditDEBITO: TIBBCDField;
    dtEditSALDO: TIBBCDField;
    Grid: TcxGrid;
    cxGridDBTableView1: TcxGridDBTableView;
    cxGridLevel1: TcxGridLevel;
    cxGridDBTableView1MES: TcxGridDBColumn;
    cxGridDBTableView1CREDITO: TcxGridDBColumn;
    cxGridDBTableView1DEBITO: TcxGridDBColumn;
    cxGridDBTableView1SALDO: TcxGridDBColumn;
    cbProdutor: TcxDBLookupComboBox;
    cxLabel2: TcxLabel;
    cbTerceiro: TcxDBLookupComboBox;
    cxLabel5: TcxLabel;
    cbPropriedade: TcxDBLookupComboBox;
    cxLabel6: TcxLabel;
    cbOperacao: TcxDBLookupComboBox;
    cxLabel19: TcxLabel;
    cxLabel3: TcxLabel;
    cbConta: TcxDBLookupComboBox;
    cxLabel7: TcxLabel;
    cxLabel1: TcxLabel;
    lstProdutores: TIBQuery;
    lstProdutoresCODIGO: TIntegerField;
    lstProdutoresNOME: TIBStringField;
    dsProdutor: TDataSource;
    dsTerceiro: TDataSource;
    lstTerceiro: TIBQuery;
    lstTerceiroCODIGO: TIntegerField;
    lstTerceiroNOME: TIBStringField;
    lstPropriedade: TIBQuery;
    lstPropriedadeCODIGO: TIntegerField;
    lstPropriedadeNOME: TIBStringField;
    dsPropriedade: TDataSource;
    dsConta: TDataSource;
    lstConta: TIBQuery;
    lstContaCODIGO: TIntegerField;
    lstContaCODIGO_STR: TIBStringField;
    lstContaCODIGO_PAI: TIntegerField;
    lstContaTRIBUTAVEL: TIBStringField;
    lstContaTIPO: TIBStringField;
    lstContaNOME: TIBStringField;
    lstOperacoes: TIBQuery;
    lstOperacoesCODIGO: TIntegerField;
    lstOperacoesNOME: TIBStringField;
    dsOperacoes: TDataSource;
    mtbFiltroPRODUTOR: TIntegerField;
    mtbFiltroPROPRIEDADE: TIntegerField;
    mtbFiltroCONTA: TIntegerField;
    mtbFiltroOPERACAO: TIntegerField;
    mtbFiltroTERCEIRO: TIntegerField;
    mtbFiltroSALDO: TFloatField;
    mtbFiltroANO: TIntegerField;
    cxDBSpinEdit1: TcxDBSpinEdit;
    cxDBCalcEdit1: TcxDBCalcEdit;
    edtRel: TIBDataSet;
    edtRelCODIGO: TIntegerField;
    edtRelCODIGO2: TIBStringField;
    dtEditRel: TDataSource;
    ppLayoutRel: TppDBPipeline;
    Designer_Rel: TppDesigner;
    rptRel: TppReport;
    ppTitleBand6: TppTitleBand;
    ppHeaderBand1: TppHeaderBand;
    ppDetailBand30: TppDetailBand;
    ppFooterBand5: TppFooterBand;
    ppSummaryBand2: TppSummaryBand;
    ppParameterList1: TppParameterList;
    ppRel: TppDBPipeline;
    ppApResultado: TppDBPipeline;
    ActConfigRel: TAction;
    btnConfig: TdxBarButton;
    ppLine1: TppLine;
    ppLine2: TppLine;
    ppLabel1: TppLabel;
    ppSystemVariable2: TppSystemVariable;
    ppLine3: TppLine;
    ppLine4: TppLine;
    ppSystemVariable1: TppSystemVariable;
    ActImprimir: TAction;
    ppLabel2: TppLabel;
    ppLabel3: TppLabel;
    ppLabel4: TppLabel;
    ppLabel5: TppLabel;
    ppDBText1: TppDBText;
    ppDBText2: TppDBText;
    ppDBText3: TppDBText;
    ppDBText4: TppDBText;
    ppDBCalc2: TppDBCalc;
    ppDBCalc3: TppDBCalc;
    raCodeModule1: TraCodeModule;
    dtApResultado: TIBDataSet;
    dsApResultado: TDataSource;
    dtApResultadoDEBITO: TIBBCDField;
    dtApResultadoCREDITO: TIBBCDField;
    dtApResultadoSALDO: TIBBCDField;
    dtApResultadoPREJUIZO: TIBBCDField;
    dtApResultadoSALDO_APOS_PREJUIZO: TIBBCDField;
    dtApResultadoALIQUOTA: TIBBCDField;
    dtApResultadoPARCELA_REDUZIR: TIBBCDField;
    dtApResultadoIMPOSTO_RENDA: TIBBCDField;
    ppSubReport1: TppSubReport;
    ppChildReport1: TppChildReport;
    ppTitleBand1: TppTitleBand;
    ppDetailBand1: TppDetailBand;
    ppSummaryBand1: TppSummaryBand;
    ppLabel6: TppLabel;
    ppLabel7: TppLabel;
    ppLabel8: TppLabel;
    ppLabel9: TppLabel;
    ppLabel10: TppLabel;
    ppLabel11: TppLabel;
    ppLabel12: TppLabel;
    ppDBText5: TppDBText;
    ppDBText6: TppDBText;
    ppDBText7: TppDBText;
    ppDBText8: TppDBText;
    ppDBText9: TppDBText;
    ppLabel13: TppLabel;
    ppDBText10: TppDBText;
    ppLabel14: TppLabel;
    ppLabel15: TppLabel;
    ppLabel16: TppLabel;
    ppLabel17: TppLabel;
    ppLabel18: TppLabel;
    ppDBText11: TppDBText;
    ppDBText12: TppDBText;
    ppDBText13: TppDBText;
    ppDBText14: TppDBText;
    edtRelREL_IRRF: TMemoField;
    dtEditCAB_PRODUTOR: TIBStringField;
    dtEditCAB_CONTA: TIBStringField;
    dtEditCAB_OPERACAO: TIBStringField;
    dtEditCAB_CNPJ: TIBStringField;
    dtEditCAB_IE: TIBStringField;
    dtEditCAB_PROPRIEDADE: TIBStringField;
    dtEditCAB_ANO: TIntegerField;
    dtEditCAB_SALDO_INICIAL: TIBBCDField;
    dtEditCAB_TERCEIRO: TIBStringField;
    dtApResultadoIMPOSTO_PAGAR: TIBBCDField;
    dtApResultadoARBITRAMENTO: TIBBCDField;
    procedure FormShow(Sender: TObject);
    procedure ActFilterExecute(Sender: TObject);
    procedure GridEnter(Sender: TObject);
    procedure lstOperacoesBeforeOpen(DataSet: TDataSet);
    procedure ActConfigRelExecute(Sender: TObject);
    procedure ActImprimirExecute(Sender: TObject);
    procedure mtbFiltroPRODUTORChange(Sender: TField);
    procedure mtbFiltroANOChange(Sender: TField);
  private
    { Private declarations }
    procedure abreconsultas;
  public
    { Public declarations }
  end;

var
  frmConsultaMovimentacao: TfrmConsultaMovimentacao;

implementation

uses DateUtils;

{$R *.dfm}

procedure TfrmConsultaMovimentacao.FormShow(Sender: TObject);
begin
  inherited;
  lstProdutores.Close;
  lstProdutores.Open;

  abreconsultas;

  cbProdutor.SetFocus;
  mtbFiltroSALDO.Value := 0;
  mtbFiltroANO.Value := YearOf(date);
end;

procedure TfrmConsultaMovimentacao.ActFilterExecute(Sender: TObject);
begin
  inherited;
  Grid.SetFocus;
  dtEdit.Close;
  dtEdit.ParamByName('produtor').value := mtbFiltroPRODUTOR.AsInteger;
  dtEdit.ParamByName('propriedade').value := mtbFiltroPROPRIEDADE.AsInteger;
  dtEdit.ParamByName('operacao').value := mtbFiltroOPERACAO.AsInteger;
  dtEdit.ParamByName('terceiro').value := mtbFiltroTERCEIRO.AsInteger;
  dtEdit.ParamByName('conta').value := mtbFiltroCONTA.AsInteger;
  dtEdit.ParamByName('ano_base').value := mtbFiltroANO.AsInteger;
  dtEdit.ParamByName('saldo').value := mtbFiltroSALDO.AsFloat;
  dtEdit.Open;

end;

procedure TfrmConsultaMovimentacao.GridEnter(Sender: TObject);
begin
  inherited;
  ActFilter.Execute;
end;

procedure TfrmConsultaMovimentacao.lstOperacoesBeforeOpen(
  DataSet: TDataSet);
begin
  inherited;
 TIBQuery(DataSet).ParamByName('codigo').value := mtbFiltroPRODUTOR.AsInteger;
 TIBQuery(DataSet).ParamByName('ano').value := mtbFiltroANO.AsInteger;
end;

procedure TfrmConsultaMovimentacao.abreconsultas;
begin
  lstTerceiro.Close;
  lstTerceiro.Open;

  lstConta.Close;
  lstConta.Open;

  lstPropriedade.Close;
  lstPropriedade.Open;


  lstOperacoes.Close;
  lstOperacoes.Open;
end;

procedure TfrmConsultaMovimentacao.ActConfigRelExecute(Sender: TObject);
begin
  inherited;
  edtRel.close;
  edtRel.parambyname('codigo').value := 1;
  edtRel.Open;

  dtApResultado.Close;
  dtApResultado.ParamByName('produtor').value := mtbFiltroPRODUTOR.AsInteger;
  dtApResultado.ParamByName('propriedade').value := mtbFiltroPROPRIEDADE.AsInteger;
  dtApResultado.ParamByName('operacao').value := mtbFiltroOPERACAO.AsInteger;
  dtApResultado.ParamByName('terceiro').value := mtbFiltroTERCEIRO.AsInteger;
  dtApResultado.ParamByName('conta').value := mtbFiltroCONTA.AsInteger;
  dtApResultado.ParamByName('ano_base').value := mtbFiltroANO.AsInteger;
  dtApResultado.ParamByName('saldo').value := mtbFiltroSALDO.AsFloat;
  dtApResultado.Open;

  rptRel.Template.DatabaseSettings.Name := edtRelCODIGO2.asstring;
  rptRel.Template.LoadFromDatabase;
  Designer_Rel.Show;
  edtRel.edit;

  edtRel.Transaction.CommitRetaining;
end;

procedure TfrmConsultaMovimentacao.ActImprimirExecute(Sender: TObject);
begin
  inherited;

  edtRel.close;
  edtRel.parambyname('codigo').value := 1;
  edtRel.Open;

  dtApResultado.Close;
  dtApResultado.ParamByName('produtor').value := mtbFiltroPRODUTOR.AsInteger;
  dtApResultado.ParamByName('propriedade').value := mtbFiltroPROPRIEDADE.AsInteger;
  dtApResultado.ParamByName('operacao').value := mtbFiltroOPERACAO.AsInteger;
  dtApResultado.ParamByName('terceiro').value := mtbFiltroTERCEIRO.AsInteger;
  dtApResultado.ParamByName('conta').value := mtbFiltroCONTA.AsInteger;
  dtApResultado.ParamByName('ano_base').value := mtbFiltroANO.AsInteger;
  dtApResultado.ParamByName('saldo').value := mtbFiltroSALDO.AsFloat;
  dtApResultado.Open;


  rptRel.Template.DatabaseSettings.Name := edtRelCODIGO2.asstring;
  rptRel.Template.LoadFromDatabase;

  rptRel.print;
end;

procedure TfrmConsultaMovimentacao.mtbFiltroPRODUTORChange(Sender: TField);
begin
  inherited;
    abreconsultas;
end;

procedure TfrmConsultaMovimentacao.mtbFiltroANOChange(Sender: TField);
begin
  inherited;
    abreconsultas;
end;

end.
